Code sample Home

Delete all layers except one with specific name (szLayerName). The layer "0" also will remain, as default.
//-----------------------------------------------
void DemoRemainOnlyLayer (HANDLE hDrw, LPCWSTR szLayerName)
{
  HANDLE hLayer;
  WCHAR  szName[256];
  int nLays, nDels;

  nDels = 0; 
  // get number of layers in the drawing
  nLays = lcDrwCountObjects( hDrw, LC_OBJ_LAYER );
  // emumerate all layers
  hLayer = lcDrwGetFirstObject( hDrw, LC_OBJ_LAYER );
  while( hLayer != 0 ){
    // get layer name
    wcscpy( szName, lcPropGetStr( hLayer, LC_PROP_LAYER_NAME ));
    if (wcscmp( szName, szLayerName ) != 0){
      // delete all entities of layer szLayerName, in all blocks
      if (lcLayerClear( hLayer, 0 ) == TRUE){
        // delete the layer, if not delault (named "0")
        if (lcDrwDeleteObject( hDrw, hLayer ) == TRUE){
          ++nDels;  // number of deleted layers
        }
      }
    }
    hLayer = lcDrwGetNextObject( hDrw, hLayer );
  }
}